// ES5之前给参数默认值
// 缺点：1.写起来就很麻烦，并且代码的阅读性比较差
    //  2.这种写法是有bug
// function foo(m,n){
//     m = m || "aaa"
//     n = n || "bbb"
//     console.log(m,n)
// }

// foo()
// foo(0,"")

// ES6可以给函数参数提供默认值
// function foo(m="aaa",n = "bbb"){
//     console.log(m,n)
// }
// foo(0,"")

// function prinInfo({name,age}={name:"why",age:18}){
//     console.log(name,age)
// }
// prinInfo({name:"kobe",age:40})

// 另外一种写法
// function printInfo1({name = "why",age = 18}={}){
//     console.log(name,age)
// }
// printInfo1()

// 有默认值的形参最好放在后面
// function bar(x,y,z = 30){
//     console.log(x,y,z)
// }
// bar(11,12)

// 4.有默认值的函数的length属性 
// function baz(x,y,z,q,e=10){
//     console.log(x,y,z)
// }
// console.log(baz.length)

// 函数的剩余参数
// ES6中可以将不定数量的参数放入到一个数组中
// 如果最后一个参数是...为前缀的，那么它会将剩余的参数放到该参数中，并且作为一个数组

